home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / Asm / Fading / Morph.s < prev    next >
Text File  |  1997-12-10  |  4KB  |  150 lines

  1. ;-------T-------T------------------------T----------------------------------;
  2. ;Name:      Palette Morph
  3. ;Author:    Paul Manias
  4. ;Copyright: DreamWorld Productions (c) 1996-1997.  Freely distributable.
  5. ;
  6. ;Fades in a 32 colour picture, then fades it into a second purple palette,
  7. ;and then out to black.  Press left mouse button to exit.
  8.  
  9.     INCDIR    "INCLUDES:"
  10.     INCLUDE    "dpkernel/dpkernel.i"
  11.  
  12.     SECTION    "Demo",CODE
  13.  
  14. ;===========================================================================;
  15. ;                             INITIALISE DEMO
  16. ;===========================================================================;
  17.  
  18.     STARTDPK
  19.  
  20. Start:    MOVEM.L    A0-A6/D1-D7,-(SP)
  21.     move.l    DPKBase(pc),a6
  22.     lea    PicFile(pc),a0
  23.     moveq    #ID_PICTURE,d0
  24.     CALL    Load
  25.     move.l    d0,Picture
  26.     beq.s    .Exit
  27.  
  28.     moveq    #ID_SCREEN,d0
  29.     CALL    Get
  30.     move.l    d0,Screen
  31.     beq.s    .Exit
  32.  
  33.     move.l    Picture(pc),a0
  34.     move.l    Screen(pc),a1
  35.     move.l    PIC_Bitmap(a0),a2
  36.     move.l    BMP_Data(a2),GS_MemPtr1(a1)
  37.     CALL    CopyStructure
  38.  
  39.     move.l    Screen(pc),a0
  40.     clr.l    GS_Palette(a0)
  41.     move.l    #BLANKPALETTE,GS_Attrib(a0)
  42.     sub.l    a1,a1
  43.     CALL    Init
  44.     tst.l    d0
  45.     beq.s    .Exit
  46.  
  47.     move.l    Screen(pc),a0
  48.     CALL    Display
  49.  
  50.     bsr.s    Main
  51.  
  52. .Exit    move.l    DPKBase(pc),a6
  53.     move.l    Screen(pc),a0
  54.     CALL    Free
  55.     move.l    Picture(pc),a0
  56.     CALL    Free
  57.     MOVEM.L    (SP)+,A0-A6/D1-D7
  58.     moveq    #ERR_OK,d0
  59.     rts
  60.  
  61. ;===========================================================================;
  62. ;                                MAIN CODE
  63. ;===========================================================================;
  64.  
  65. Main:    moveq    #$00,d7    ;d0 = FadeState
  66.     move.l    Screen(pc),a0
  67.     move.l    GS_Bitmap(a0),a5
  68.     move.l    SCRBase(pc),a6
  69. .f_in    CALL    scrWaitVBL
  70.     move.l    Screen(pc),a0
  71.     move.l    Picture(pc),a1
  72.     move.l    PIC_Palette(a1),a1    ;a1 = Palette to fade to.
  73.     addq.w    #8,a1
  74.     moveq    #5,d1    ;d1 = Speed of fade.
  75.     moveq    #$000000,d2
  76.     moveq    #00,d3
  77.     move.l    BMP_AmtColours(a5),d4
  78.     move.w    d7,d0
  79.     CALL    scrColourToPalette    ;Do the fade routine.
  80.     move.w    d0,d7    ;Has the fade finished yet?
  81.     bne.s    .f_in    ;If not, keep doing it.
  82.  
  83.     move.l    DPKBase(pc),a6
  84.     moveq    #50,d0
  85.     CALL    WaitTime
  86.  
  87.     moveq    #$00,d7    ;d0 = FadeState
  88.     move.l    SCRBase(pc),a6
  89. .f_mid    CALL    scrWaitVBL
  90.     move.l    Screen(pc),a0
  91.     moveq    #2,d1    ;d1 = Speed of fade.
  92.     move.l    Picture(pc),a1
  93.     move.l    PIC_Palette(a1),a1    ;a1 = Palette to fade to.
  94.     addq.w    #8,a1
  95.     lea    MorphPalette(pc),a2    ;a2 = Destination Palette.
  96.     move.w    d7,d0
  97.     CALL    scrPaletteMorph    ;Do the fade routine.
  98.     move.w    d0,d7    ;Has the fade finished yet?
  99.     bne.s    .f_mid    ;If not, keep doing it.
  100.  
  101.     move.l    DPKBase(pc),a6
  102.     moveq    #50,d0
  103.     CALL    WaitTime
  104.  
  105.     moveq    #$00,d7    ;d0 = FadeState
  106.     move.l    SCRBase(pc),a6
  107. .f_out    CALL    scrWaitAVBL
  108.     move.l    Screen(pc),a0
  109.     moveq    #2,d1    ;d1 = Speed of fade.
  110.     lea    MorphPalette(pc),a1
  111.     moveq    #$000000,d2
  112.     move.w    d7,d0
  113.     CALL    scrPaletteToColour    ;Do the fade routine.
  114.     move.w    d0,d7    ;Has the fade finished yet?
  115.     bne.s    .f_out    ;If not, keep doing it.
  116.  
  117.     move.l    DPKBase(pc),a6
  118.     moveq    #25,d0
  119.     CALL    WaitTime
  120.     rts
  121.  
  122. ;===========================================================================;
  123. ;                                  DATA
  124. ;===========================================================================;
  125.  
  126. Screen:    dc.l    0
  127. Picture    dc.l    0
  128.  
  129. MorphPalette:
  130.     dc.l    $000000,$0A0107,$14020E,$1D0314
  131.     dc.l    $27041B,$310522,$3B0629,$45082F
  132.     dc.l    $4E0936,$580A3D,$620B44,$6C0C4A
  133.     dc.l    $760D51,$800E58,$890F5F,$931066
  134.     dc.l    $9D116C,$A71273,$B1137A,$BA1481
  135.     dc.l    $C41687,$CE178E,$D81895,$E2199C
  136.     dc.l    $EB1AA2,$F51BA9,$FF1CB0,$D71C9F
  137.     dc.l    $557D55,$707082,$443300,$1E1E1E
  138.  
  139. PicFile    FILENAME "GMS:demos/data/PIC.Loading"
  140.  
  141. ;===========================================================================;
  142.  
  143. ProgName:    dc.b  "Palette Morph",0
  144. ProgAuthor:    dc.b  "Paul Manias",0
  145. ProgDate:    dc.b  "10 December 1997",0
  146. ProgCopyright:    dc.b  "DreamWorld Productions (c) 1996-1997.  Freely distributable.",0
  147. ProgShort:    dc.b  "Fading demonstration.",0
  148.         even
  149.  
  150.